1. Field of the Invention
The present invention relates to an improved system and method for multicasting in a network processing system. The term “multicasting”, as used herein, is meant to describe a system for message creation and distribution addressing the same data content (a message consisting of one or more frames) to multiple addressees, and may result either from a broadcast message (e.g., a message to all units in the network) or a message for a distribution list (a message for all those recipients listed in a predefined or stored distribution list of recipients).
2. Background Art
Communications between information handling systems such as computers has been growing rapidly over the past few years, due, at least in part, to the rise in communications with the Internet and in private data networks. More and more devices are doing more and more communications over the networks which provide remote access to an increasing amount of data and processing power.
As network usage has grown over this time, it has translated into an explosion of messages or network traffic, each of which must be passed from the origin to the desired destination accurately. This has given rise to an increasing demand on routers and switches, those network devices which receive messages and direct them to the appropriate destination, either an internal address on a local network or to an external device on another network.
The rising amount of network traffic and the increasing number of communicating terminals has meant that more communications traffic has to be routed through routers and switches. As a result, the routers and switches have become faster and more sophisticated, processing an increasing amount of information faster and with greater efficiency.
Data processing systems such as are described in the NPU Patent use one of a plurality of processors to receive input information units or frames from a dispatcher and send the completed or output information unit to a completion unit for further handling, such as enqueueing it on an outbound bus back out to the network (in what is sometimes referred to as a downward flow) or distribution to a switch fabric for an internal address associated with the switch rather than the network (in a data flow which is sometimes referred to an upward or up flow).
Some of such systems have been defined to expect a processing unit to generate exactly one (one and only one) output information unit for each input information unit. Hence, systems such as are described in the Data Management Patent look for the one output information unit created for each input information unit. However, when individually-addressed messages are being created in a multicasting environment, by definition, a single input message is addressed to a plurality of recipients and therefore, in a system where the individual messages are created from a single multicast message, inherently then a plurality of output messages will be created from a single input message, rather than the one output for one input which is suggested in some systems.
Neither the NPU Patent nor the Network Management Patent include a provision of a system and apparatus for effectively multicasting messages, but such messages must be accommodated and must be handled without disrupting a single data flow. That is, the second message or frame from a given data flow must not precede the first frame of the same data flow for any recipient.
Some systems like the Multicasting Patent referenced above assign the creation of multicast messages to a single processor or to a group of processors (such as a group leader) as a way of managing the requirement to send multiple output messages from a single input message. This requires differentiation in the capabilities of the multicasting processor, requiring a different configuration—at least a different set of application programming code, if not a different set of hardware as well—to implement multicasting. It also results either in having a limited multicasting resource (which could get overwhelmed with multicast requests) or the extra capability in a plurality of different processors (unnecessary capabilities in many instances).
Such a system which may create multiple messages requires knowing when the multiple messages are completed—when the last output information unit has been created from a single input information unit. This can either be done by indicating the number of messages being created and counting the output messages as they are created or in identifying the last message created as the last output message being created from a single input.
It is also important that output messages from a single data flow be kept in sequence order—a first-in-first-out arrangement—so that stations receiving messages from that single data flow will receive them in the proper order. A single data flow may consist of two or more input information units or frames and those frames may be processed by different processing units of the type described in the NPU Patent at different times. Typically, a single frame is sent to a single processing unit, but then the next frame is likely to be sent to a different processing unit. If both frames are part of the same data flow and multicast to the same recipient, then it is desired that the frames be received by the recipient in the same order in which the frames were originally received, regardless of which of a plurality of processing units processed each or how long the processing of each frame takes. It is easy to imagine a data flow of two frames, the first of which requires a significant amount of processing and the second requiring little processing. If both of these frames are sent for multicasting to different processors, the first frame might be still being prepared for the first recipient when the second frame has been prepared for multiple recipients in succession.
Previously proposed systems have disadvantages and limitations, either in not keeping the frames in the order in which they were received or in having a complex system for keeping the messages in order or reassembling the messages in the proper order later, or in simply not supporting the multicasting of messages by a plurality of independent, yet similar, processing units.
Accordingly, the systems of the prior art have undesirable disadvantages and limitations, particularly as it relates to multicasting of messages in a system which employed multiple parallel processing units.